/**
 * 给定一个字符串要求切成尽可能多的偶数，并且升序输出
 * 偶数贪心即可。碰见偶数字母即可分隔。正序扫描或者倒序扫描都一样。
 * 升序只需要实现自定义cmp即可。
 * 直接使用字符串也不会超时
 */
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;

using llt = long long;
using vi = vector<int>;
using vll = vector<llt>;
using pii = pair<int, int>;
using vpii = vector<pii>;

template<typename T>
void input(vector<T>&v, int n){
    v.assign(n + 1, {});
    for(int i=1;i<=n;++i)cin>>v[i];
    return;
}

int N;
string S;
vpii A;

void work(){
    cin >> S;
    N = S.length();

    A.clear();
    int k = N - 1;
    while(1){
        int o = 1;
        while(k - o >= 0 and ((S[k - o] ^ '0') & 1)){
            ++o;
        }

        A.emplace_back(k-o+1, k);
        if((k -= o) == -1) break;
    }

    sort(A.begin(), A.end(), [&](const pii & u, const pii & v){
        auto ul = u.second - u.first + 1;
        auto vl = v.second - v.first + 1;
        if(ul != vl) return ul < vl;
        for(int i=u.first,j=v.first;i<=u.second;++i,++j){
            if(S[i] != S[j]) return S[i] < S[j];
        }
        return false;
    });

    for(const auto & p : A){
        for(int i=p.first;i<=p.second;++i) cout << S[i];
        cout << "\n";
    }

    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--) {
		work();
	}
    return 0;
}